#ifndef CORNERFIND_PLUGIN_H
#define CORNERFIND_PLUGIN_H

#include "cornerfind_plugin_global.h"
#include "cvplugininterface.h"

namespace Ui {
    class PluginGui;
}

class CORNERFIND_PLUGINSHARED_EXPORT Cornerfind_Plugin: public QObject, public CvPluginInterface
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "com.opencv.cvplugininterface")
    Q_INTERFACES(CvPluginInterface)
public:
    Cornerfind_Plugin();
    ~Cornerfind_Plugin();

    QString title();
    QString version();
    QString description();
    QString help();
    void setupUi(QWidget *parent);
    void processImage(const cv::Mat &inputImage, cv::Mat &outputImage);
    void openURL(QString url);

signals:
    void updateNeeded();
    void errorMessage(QString msg);
    void infoMessage(QString msg);

private slots:
    void on_blocksizeSpin_valueChanged(int arg1);

    void on_ksizeSpin_valueChanged(int arg1);

    void on_kSpin_valueChanged(double arg1);

    void on_threshSlider_valueChanged(int value);

    void on_tabWidget_currentChanged(int index);

    void on_maxCornerSpin_valueChanged(int arg1);

    void on_qualitySpin_valueChanged(double arg1);

    void on_minDstSpin_valueChanged(double arg1);

    void on_ShikSpin_valueChanged(double arg1);

    void on_harrisCheckBox_toggled(bool checked);

    void on_shiBlockSizeSpin_valueChanged(int arg1);

    void on_subMaxCornerSpin_valueChanged(int arg1);

    void on_subQualitySpin_valueChanged(double arg1);

    void on_subMinDstSpin_valueChanged(double arg1);

    void on_subBlockSizeSpin_valueChanged(int arg1);

    void on_SubkSpin_valueChanged(double arg1);

    void on_subMaxCountSpin_valueChanged(int arg1);

    void on_subEpsSpin_valueChanged(double arg1);

    void on_subWinXSpin_valueChanged(int arg1);

    void on_subWinYSpin_valueChanged(int arg1);

    void on_subZeroXSpin_valueChanged(int arg1);

    void on_subZeroYSpin_valueChanged(int arg1);

    void on_subHarrisCheckBox_toggled(bool checked);

    void on_cusHblockSpin_valueChanged(int arg1);

    void on_cusHksizeSpin_valueChanged(int arg1);

    void on_cusHkSpin_valueChanged(double arg1);

    void on_cusHmaxcountSpin_valueChanged(int arg1);

    void on_cusHSlider_valueChanged(int value);

    void on_cusHarrisRadio_toggled(bool checked);

    void on_cusShiToRadio_toggled(bool checked);

private:
    Ui::PluginGui *ui;

};

#endif // CORNERFIND_PLUGIN_H
